// 引入路由类型
import type { RouteRecordRaw } from "vue-router";

// 定义小仓库数据store/layout/user.ts的state类型
export interface IUserState {
  token: String | null;
  userId: String;
  username: String | number;
  nickname: String | number;
  avatar: String;
  routeList: any;
  roleList: string[];
  buttonList: string[];
}

// 定义小仓库数据store/layout/routes.ts的state类型
export interface IRouterState {
  menuRoutes: RouteRecordRaw[];
}

// 定义小仓库数据store/layout/collapse.ts的state类型
export interface ICollapseState {
  // 折叠菜单
  collapse: boolean;
}

// 定义小仓库数据store/layout/tab.ts选项卡类型
export interface Itab {
  title: string;
  path: string;
  icon: string;
}

// 定义小仓库数据store/layout/tabs.ts的state类型
export interface ITabsState {
  // tabs选项卡
  tabList: Itab[];
}

// 定义小仓库数据store/layout/refresh.ts的state类型
export interface IRefreshsState {
  refresh: boolean;
}

// 定义小仓库数据store/layout/dark.ts的state类型
export interface IDarksState {
  dark: boolean;
  menuFontColor: string;
  menuBorderLeftSolidColor: string;
  menuRightBoxShadow: string;
  menuBorderLeftColor: string;
  tabsHoverFontColor: string;
  isSelected1: boolean;
  isSelected2: boolean;
  isSelected3: boolean;
  isSelected4: boolean;
  isSelected5: boolean;
  isSelected6: boolean;
  isSelected7: boolean;
  isSelected8: boolean;
  uniqueOpened: boolean;
  asideMenuWidth: number;
  layout: string;
}

// 定义小仓库数据store/layout/screen.ts的state类型
export interface IHiddenState {
  settingHidden: boolean;
  breadHidden: boolean;
  tabsHidden: boolean;
  loginHidden: boolean;
  registerBackground: string;
  loginPosition: number;
}
